﻿using Abp.Domain.Entities;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;

namespace HCD.Entities
{
    [Table("Requirement")]
    public class Requirement : Entity<int>, ISoftDelete, IMustHaveTenant
    {
        /// <summary>
        /// 项目名称（S）
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        public string ProjectTitle { get; set; }

        /// <summary>
        /// 项目描述（S）
        /// </summary>
        [Column(TypeName = "nvarchar(2000)")]
        public string ProjectDescription { get; set; }

        /// <summary>
        /// 项目标签（S）
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        public string ProjectTags { get; set; }

        /// <summary>
        /// 项目开发环境要求
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        public string EnvironmentDevTags { get; set; }

        /// <summary>
        /// 项目部署系统要求
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        public string EnvironmentOSTags { get; set; }

        /// <summary>
        /// ClientTags运行终端要求
        /// </summary>
        [Column(TypeName = "nvarchar(50)")]
        public string ClientTags { get; set; }
        /// <summary>
        /// 计划开始日期
        /// </summary>
        public DateTime? PlanStart { get; set; }
        /// <summary>
        /// 计划完成日期
        /// </summary>
        public DateTime? PlanFinish { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// 项目发起人
        /// </summary>
        public Guid CreateOperator { get; set; }
        /// <summary>
        /// 项目总金额预估
        /// </summary>
        [Column(TypeName ="decimal(12,2)")]
        public decimal TotalPrice { get; set; }
        /// <summary>
        /// 需求状态(0:草稿 1:发布 2:组建团队 9:完成 -1:关闭)；个人需求所有状态都可见；公共区只可见1和2；参与项目
        /// </summary>
        public Enums.RequirementStatusEnum Status { get; set; }
        public bool IsDeleted { get; set; }
        public int TenantId { get; set; }
    }
}
